<?php
/**
 * alltosun.com 添加助理
 * ============================================================================
 * 版权所有 (C) 2009-2011 北京互动阳光科技有限公司，并保留所有权利。
 * 网站地址: http://www.alltosun.com
 * ----------------------------------------------------------------------------
 * 许可声明：这是一个开源程序，未经许可不得将本软件的整体或任何部分用于商业用途及再发布。
 * ============================================================================
 * $Author: 高昂 (gaoa@alltosun.com) $
 * $Date: 2016-2-1 下午5:24:26 $
 * $Id: $
 */

class Action
{
    /**
     * 添加总监
     */
    public function add()
    {
        $id = Request::Get('id', 0);
        if ($id) {

            $user_info          = _uri('user', $id);
            $division_user_info = _model('user_division')->read(array('user_id'=>$id));

            if ($division_user_info) {
                $user_info['division_id'] = $division_user_info['division_id'];
            }

            Response::assign('info', $user_info);
        }

        Response::assign('role', user_config::$role_arr[user_config::DIRECTOR]);
        Response::assign('role_id', user_config::DIRECTOR);
        Response::assign('division_arr', user_config::$division_arr);
        Response::display('admin/add_director.html');
    }

    /**
     * 保存
     */
    public function save()
    {
        $id          = Request::getParam('id', 0);
        $info        = Request::getParam('info', array());
        $hash        = user_helper::random_hash(6);

        $role_id     = $info['role_id'];
        $password    = $info['password'];
        $division_id = $info['division_id'];

//        if($info['email']) {
//            if(!filter_var($info['email'], FILTER_VALIDATE_EMAIL)) {
//                return array('邮箱格式不正确！', 'error', AnUrl('user/admin'));
//            }
//        }

        if(!$info['division_id']) {
            return array('请先选择事业部！', 'error', AnUrl('user/admin'));
        }

        if($info['mobile']) {
            if(trim($info['mobile']) == '') {
                return array('手机号不能为空！', 'error', AnUrl('user/admin'));
            }
            $info['user_name'] = $info['mobile'];
        }

        // 去除 roleid
        unset($info['role_id']);
        unset($info['division_id']);

        if ($id) {
            // 不提交密码，不更新密码
            if ($info['password']) {

                if(!user_helper::is_strlen_scope($password, 6)) {
                    return array('密码长度不符合要求！', 'error', AnUrl('user/admin'));
                }

                $info['hash']     = $hash;
                $info['password'] = user_helper::md5_password(trim($password), $hash);
            } else {
                unset($info['password']);
                unset($info['hash']);
            }

            _model('user')->update($id, $info);
            _model('user_division')->update(array('user_id' => $id), array('division_id'=>$division_id));
        } else {

            // 判断用户信息是否唯一
            $unique_info = user_helper::user_info_unique($info['user_name'], $info['email'], $info['mobile']);
            if($unique_info['info'] == 'error') {
                return array($unique_info['msg'], 'error', AnUrl('user/admin'));
            }

            if(user_helper::is_pwd_null($password)) {
                return array('密码内不能包含空字符！', 'error', AnUrl('user/admin'));
            }

            if(!user_helper::is_strlen_scope($password, 6)) {
                return array('密码长度不符合要求！', 'error', AnUrl('user/admin'));
            }

            $info['hash']     = $hash;
            $info['password'] = user_helper::md5_password(trim($password), $hash);

            $user_id   = _model('user')->create($info);
            if($user_id) {

                _model('role_user')->create(array('user_id' => $user_id, 'role_id' => $role_id));
                _model('user_division')->create(array('user_id' => $user_id, 'division_id'=>$division_id));
            }
        }
        Response::redirect(AnUrl('user/admin'));
    }
}
?>